//
//  QDThemeManager.h
//  qmuidemo
//
//  Created by QMUI Team on 2017/5/9.
//  Copyright © 2017年 QMUI Team. All rights reserved.
//

#import <Foundation/Foundation.h>
#import "QDThemeProtocol.h"

/// 简单对 QMUIThemeManager 做一层业务的封装，省去类型转换的工作量
@interface QDThemeManager : NSObject

@property(class, nonatomic, readonly, nullable) NSObject<QDThemeProtocol> *currentTheme;
@end

@interface UIColor (QDTheme)

@property(class, nonatomic, strong, readonly) UIColor * _Nullable qd_backgroundColor;
@property(class, nonatomic, strong, readonly) UIColor * _Nullable qd_backgroundColor2;
@property(class, nonatomic, strong, readonly) UIColor * _Nullable qd_backgroundColor3;
@property(class, nonatomic, strong, readonly) UIColor * _Nullable qd_tfBackgroundColor2;
@property(class, nonatomic, strong, readonly) UIColor * _Nullable qd_tfBackgroundColor3;
@property(class, nonatomic, strong, readonly) UIColor * _Nullable qd_backgroundColorLighten;
@property(class, nonatomic, strong, readonly) UIColor * _Nullable qd_backgroundColorLighten2;
@property(class, nonatomic, strong, readonly) UIColor * _Nullable qd_backgroundColorLighten3;
/// 用于钱包item背景色 FAFAF7 247247250
@property(class, nonatomic, strong, readonly) UIColor * _Nullable qd_backgroundColorLighten4;
@property(class, nonatomic, strong, readonly) UIColor * _Nullable qd_backgroundColorLighten5;
@property(class, nonatomic, strong, readonly) UIColor * _Nullable qd_backgroundColorLighten6;
@property(class, nonatomic, strong, readonly) UIColor * _Nullable qd_backgroundColorHighlighted;
@property(class, nonatomic, strong, readonly) UIColor * _Nullable qd_tintColor;
@property(class, nonatomic, strong, readonly) UIColor * _Nullable qd_tintColor2;
@property(class, nonatomic, strong, readonly) UIColor * _Nullable qd_tintColor3;
@property(class, nonatomic, strong, readonly) UIColor * _Nullable qd_tintColor4;
@property(class, nonatomic, strong, readonly) UIColor * _Nullable qd_tintColor5;
@property(class, nonatomic, strong, readonly) UIColor * _Nullable qd_tintColor6;
@property(class, nonatomic, strong, readonly) UIColor * _Nullable qd_tintColor7;
@property(class, nonatomic, strong, readonly) UIColor * _Nullable qd_tintColor8;
@property(class, nonatomic, strong, readonly) UIColor * _Nullable qd_tintColor9;
@property(class, nonatomic, strong, readonly) UIColor * _Nullable qd_tintColor10;
@property(class, nonatomic, strong, readonly) UIColor * _Nullable qd_tintColor11;
@property(class, nonatomic, strong, readonly) UIColor * _Nullable qd_tintColor12;
@property(class, nonatomic, strong, readonly) UIColor * _Nullable qd_tintColor13;
@property(class, nonatomic, strong, readonly) UIColor * _Nullable qd_tintColor14;
@property(class, nonatomic, strong, readonly) UIColor * _Nullable qd_tintColor15;
@property(class, nonatomic, strong, readonly) UIColor * _Nullable qd_tintColor16;
@property(class, nonatomic, strong, readonly) UIColor * _Nullable qd_tintColor17;
@property(class, nonatomic, strong, readonly) UIColor * _Nullable qd_tintColor18;
@property(class, nonatomic, strong, readonly) UIColor * _Nullable qd_tintColor19;
@property(class, nonatomic, strong, readonly) UIColor * _Nullable qd_tintColor20;
@property(class, nonatomic, strong, readonly) UIColor * _Nullable qd_tintColor21;
@property(class, nonatomic, strong, readonly) UIColor * _Nullable qd_tintColor22;
@property(class, nonatomic, strong, readonly) UIColor * _Nullable qd_tintColor23;
@property(class, nonatomic, strong, readonly) UIColor * _Nullable qd_tintColor24;
@property(class, nonatomic, strong, readonly) UIColor * _Nullable qd_tintColor25;
@property(class, nonatomic, strong, readonly) UIColor * _Nullable qd_auxiliaryColor1;
@property(class, nonatomic, strong, readonly) UIColor * _Nullable qd_auxiliaryColor2;
@property(class, nonatomic, strong, readonly) UIColor * _Nullable qd_auxiliaryColor3;
@property(class, nonatomic, strong, readonly) UIColor * _Nullable qd_auxiliaryColor4;
@property(class, nonatomic, strong, readonly) UIColor * _Nullable qd_auxiliaryColor5;

@property(class, nonatomic, strong, readonly) UIColor * _Nullable qd_titleTextColor;
@property(class, nonatomic, strong, readonly) UIColor * _Nullable qd_mainTextColor;
@property(class, nonatomic, strong, readonly) UIColor * _Nullable qd_titleTextColor2;
@property(class, nonatomic, strong, readonly) UIColor * _Nullable qd_mainTextColor2;
@property(class, nonatomic, strong, readonly) UIColor * _Nullable qd_descriptionTextColor;
@property(class, nonatomic, strong, readonly) UIColor * _Nullable qd_descriptionText2Color;
@property(class, nonatomic, strong, readonly) UIColor * _Nullable qd_placeholderColor;
@property(class, nonatomic, strong, readonly) UIColor * _Nullable qd_infoTitleColor;
@property(class, nonatomic, strong, readonly) UIColor * _Nullable qd_emptyTextColor;

@property(class, nonatomic, strong, readonly) UIColor * _Nullable qd_codeColor;
@property(class, nonatomic, strong, readonly) UIColor * _Nullable qd_separatorColor;
@property(class, nonatomic, strong, readonly) UIColor * _Nullable qd_gridItemTintColor;
@property(class, nonatomic, strong, readonly) UIColor * _Nullable qd_lineColor;
@property(class, nonatomic, strong, readonly) UIColor * _Nullable qd_lineColor2;
@property(class, nonatomic, strong, readonly) UIColor * _Nullable qd_lineColor3;
@property(class, nonatomic, strong, readonly) UIColor * _Nullable qd_lineColor4;
@property(class, nonatomic, strong, readonly) UIColor * _Nullable qd_rentLBTitleColor;
@property(class, nonatomic, strong, readonly) UIColor * _Nullable qd_rentLBBGColor;

@property(class, nonatomic, strong, readonly) UIColor * _Nullable qd_rewardRedeemTitleColor;
@property(class, nonatomic, strong, readonly) UIColor * _Nullable qd_rewardBuyTitleColor;
@property(class, nonatomic, strong, readonly) UIColor * _Nullable qd_rewardBuyCountBGColor;
@property(class, nonatomic, strong, readonly) UIColor * _Nullable qd_rewardDeleteTitleColor;
@property(class, nonatomic, strong, readonly) UIColor * _Nullable qd_menuShadowColor;
@property(class, nonatomic, strong, readonly) UIColor * _Nullable qd_homeNameColor;
@property(class, nonatomic, strong, readonly) UIColor * _Nullable qd_swapDetailColor;

@end

@interface UIImage (QDTheme)

@property(class, nonatomic, strong, readonly) UIImage * _Nullable qd_searchBarTextFieldBackgroundImage;
@property(class, nonatomic, strong, readonly) UIImage * _Nullable qd_searchBarBackgroundImage;
@property(class, nonatomic, strong, readonly) UIImage * _Nullable qd_LoginVCBackgroundImage;
@property(class, nonatomic, strong, readonly) UIImage * _Nullable qd_MenuTopImage;
@property(class, nonatomic, strong, readonly) UIImage * _Nullable qd_MenuTopMask;
@property(class, nonatomic, strong, readonly) UIImage * _Nullable qd_homeScanBtnImage;
@property(class, nonatomic, strong, readonly) UIImage * _Nullable qd_successImage;
@property(class, nonatomic, strong, readonly) UIImage * _Nullable qd_ballImage;

@property(class, nonatomic, strong, readonly) UIImage * _Nullable qd_arrowTick;

@property(class, nonatomic, strong, readonly) UIImage * _Nullable qd_fbSignSelImg;
@property(class, nonatomic, strong, readonly) UIImage * _Nullable qd_fbSignUnSelImg;
@property(class, nonatomic, strong, readonly) UIImage * _Nullable qd_fbSelImg;
@property(class, nonatomic, strong, readonly) UIImage * _Nullable qd_fbUnSelImg;
/// card default
@property(class, nonatomic, strong, readonly) UIImage * _Nullable qd_defauSelImg;
@property(class, nonatomic, strong, readonly) UIImage * _Nullable qd_defauUnSelImg;
@property(class, nonatomic, strong, readonly) UIImage * _Nullable qd_cardDefauImg;
@property(class, nonatomic, strong, readonly) UIImage * _Nullable qd_cardCloseImg;
@property(class, nonatomic, strong, readonly) UIImage * _Nullable qd_faqHelpImg;
@property(class, nonatomic, strong, readonly) UIImage * _Nullable qd_inviteMoreImg;
@property(class, nonatomic, strong, readonly) UIImage * _Nullable qd_inviteCopyImg;

@property(class, nonatomic, strong, readonly) UIImage * _Nullable qd_rewardPointLineImg;
@property(class, nonatomic, strong, readonly) UIImage * _Nullable qd_rewardLocationImg1;
@property(class, nonatomic, strong, readonly) UIImage * _Nullable qd_rewardLocationImg2;
@property(class, nonatomic, strong, readonly) UIImage * _Nullable qd_rewardCalenderImg1;
@property(class, nonatomic, strong, readonly) UIImage * _Nullable qd_rewardCalenderImg2;
@property(class, nonatomic, strong, readonly) UIImage * _Nullable qd_rewardPointImg;
@property(class, nonatomic, strong, readonly) UIImage * _Nullable qd_rewardMoneyImg;
@property(class, nonatomic, strong, readonly) UIImage * _Nullable qd_rewardNextImg;

@property(class, nonatomic, strong, readonly) UIImage * _Nullable qd_homeLocCloseBigImg;
@property(class, nonatomic, strong, readonly) UIImage * _Nullable qd_homeLocBigImg;
@property(class, nonatomic, strong, readonly) UIImage * _Nullable qd_homeLocCloseImg;
@property(class, nonatomic, strong, readonly) UIImage * _Nullable qd_homeLocImg;
@property(class, nonatomic, strong, readonly) UIImage * _Nullable qd_menuLogoImg;
//@property(class, nonatomic, strong, readonly) UIImage * _Nullable qd_defaultImg;
@property(class, nonatomic, strong, readonly) UIImage * _Nullable qd_couponMoreImg;
@property(class, nonatomic, strong, readonly) UIImage * _Nullable qd_stationDefaultImg;
@property(class, nonatomic, strong, readonly) UIImage * _Nullable qd_walletWarningImg;
@property(class, nonatomic, strong, readonly) UIImage * _Nullable qd_rewardPointTopImg;
@property(class, nonatomic, strong, readonly) UIImage * _Nullable qd_homeMenuImg;
@property(class, nonatomic, strong, readonly) UIImage * _Nullable qd_homeScanImg;
@property(class, nonatomic, strong, readonly) UIImage * _Nullable qd_homeLocationImg;
@property(class, nonatomic, strong, readonly) UIImage * _Nullable qd_homeShadowImg;
@property(class, nonatomic, strong, readonly) UIImage * _Nullable qd_walletArrowImg;
@property(class, nonatomic, strong, readonly) UIImage * _Nullable qd_homeMapOpenImg;
@property(class, nonatomic, strong, readonly) UIImage * _Nullable qd_homeMapCloseImg;
@end

@interface UIVisualEffect (QDTheme)

@property(class, nonatomic, strong, readonly) UIVisualEffect * _Nullable qd_standardBlurEffect;
@end
